package com.wzy.content.service;

import com.wzy.content.model.dto.BindTeachplanMediaDto;
import com.wzy.content.model.dto.SaveTeachplanDto;
import com.wzy.content.model.dto.TeachplanDto;
import com.wzy.content.model.po.TeachplanMedia;

import java.util.List;

/**
 * @Author wzy
 * @Date 2023/12/29 15:04
 * @description: 课程计划管理业务接口
 */
public interface TeachplanService {
    /**
     * 根据课程id查询课程计划树
     * @param courseID 课程id
     * @return List<TeachplanDto>
     */
    List<TeachplanDto> getTeachPlanTree(Long courseID);

    void updateTeachPlan(SaveTeachplanDto saveTeachplanDto);

    /**
     * 根据课程计划(目录）id删除课程计划
     * @param teachPlanId
     */
    void deleteTeachPlaById(Long teachPlanId);

    /**
     * 移动课程计划顺序
     * @param moveType 移动类型：movedown 下移和moveup 上移
     * @param teachPlanId 课程计划id
     */
    void moveTeachPlanById(String moveType, Long teachPlanId);

    /**
     * 课程计划绑定媒资信息
     * @param bindTeachplanMediaDto 课程计划与媒资关联信息dto
     */
    void associationMedia(BindTeachplanMediaDto bindTeachplanMediaDto);

    /**
     * 课程计划解绑视频
     * @param teachPlanId
     * @param mediaId
     */
    void mediaUnAssociation(Long teachPlanId, String mediaId);

    /**
     * 更具媒资id查询相关课程计划
     *
     * @param mediaId 媒资id
     * @return
     */
    List<TeachplanMedia> getTeachPlanByMediaId(String mediaId);
}
